package com.xjrsoft.module.customerTwo.EMP.settlement.service;

import com.xjrsoft.module.customerTwo.EMP.settlement.entity.TElectricCheckoutSettlement;
import com.xjrsoft.module.customerTwo.EMP.settlement.entity.TElectricCheckoutSettlementDetails;
import com.xjrsoft.module.customerTwo.EMP.settlement.dto.TElectricCheckoutSettlementListDto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xjrsoft.module.customerTwo.EMP.settlement.entity.TElectricCheckoutSettlementTools;
import org.springframework.transaction.annotation.Transactional;

/**
 *  服务类
 *
 * @author lisen
 * @since 2023-08-04
 */
public interface ITElectricCheckoutSettlementService extends IService<TElectricCheckoutSettlement> {
	/**
	 * 自定义分页
	 *
	 * @param pageListDto
	 * @return
	 */
	IPage<TElectricCheckoutSettlement> getPageList(TElectricCheckoutSettlementListDto pageListDto);

	List<TElectricCheckoutSettlementDetails> getTElectricCheckoutSettlementDetailsByParentId(String parentId);

	List<TElectricCheckoutSettlementTools> getTElectricCheckoutSettlementToolsByParentId(String parentId);

	@Transactional(rollbackFor = Exception.class)
	boolean addTElectricCheckoutSettlement(TElectricCheckoutSettlement tElectricCheckoutSettlement, List<TElectricCheckoutSettlementDetails> tElectricCheckoutSettlementDetailsList,List<TElectricCheckoutSettlementTools> tElectricCheckoutSettlementToolsList) throws Exception;

	boolean updateTElectricCheckoutSettlement(String id, TElectricCheckoutSettlement tElectricCheckoutSettlement, List<TElectricCheckoutSettlementDetails> tElectricCheckoutSettlementDetailsList,List<TElectricCheckoutSettlementTools> tElectricCheckoutSettlementToolsList);

	/**
	* Title: deprecated
	* @description 退宿作废
	* @createTime  2024-02-26 11:36
	* @param
	* @return boolean
	*/
	@Transactional(rollbackFor = Exception.class)
	boolean deprecated(String id)throws Exception;

	boolean delete(String ids);

	@Transactional(rollbackFor = Exception.class)
	boolean settle(String id);

	boolean confirm(String id);
}
